package main

import (
	"flag"
	"fmt"
	"os"
	"trader/cmd/migrate/install"
)

// go env -w GOOS=windows; go build cmd/migrate/main.go
func main() {

	initCmd := flag.NewFlagSet("init", flag.ExitOnError)
	initConfigPtr := initCmd.String("config", "config.yaml", "配置文件")

	updateCmd := flag.NewFlagSet("update", flag.ExitOnError)
	updateConfigPtr := updateCmd.String("config", "config.yaml", "配置文件")
	actionUpdatePtr := updateCmd.String("version", "000001", "update to version")

	if len(os.Args) < 2 {
		fmt.Println("expected 'init' or 'update' subcommands")
		os.Exit(1)
	}

	switch os.Args[1] {
	case "init":
		_ = initCmd.Parse(os.Args[2:])
		fmt.Println("init...")
		fmt.Printf("init args: %s", *initConfigPtr)
		install.Migrate(*initConfigPtr)
	case "update":
		_ = updateCmd.Parse(os.Args[2:])
		fmt.Println("update...")
		fmt.Printf("update args: %s, %s", *updateConfigPtr, *actionUpdatePtr)
	default:
		fmt.Println("expected 'init' or 'update' subcommands")
		os.Exit(1)
	}
}
